#ifndef MYTABLE_H
#define MYTABLE_H

#include "course.h"
#include "student.h"
#include "xlsxdocument.h" // 确保你已经安装了 QXlsx 库

class MyTable
{
public:
    MyTable();
    MyTable(QString tableName,  QString& header, QList<Course>& courseList, QMap<QString, Student>& students, GradeLevel gradeLevel);

    bool saveTable();

private:
    void saveHeader(QXlsx::Document& xlsx);
    void saveTitle(QXlsx::Document& xlsx);
    void saveScore(QXlsx::Document& xlsx);
    void checkCharityColors(QXlsx::Document& xlsx);     // 公益分低于300标记红色
    void checkConductColors(QXlsx::Document& xlsx);     // 操行分低于85标记红色
    void checkCourseColors(QXlsx::Document& xlsx);      // 课程分数低于60标记红色


    void sortByTotalScore();            // 按奖学金总成绩排序
    QString createCourseGradeFormula(int studentIndex);  // 创建课程公式
    QString createCharityGradeFormula(int studentIndex, int charityIndex); // 创建公益分公式
    QString createConductGradeFormula(int studentIndex, int conductIndex); // 创建操行分公式
    QString createsScholarshipGradeFormula(int studentIndex, int sportsIndex, int courseGradeIndex, int charityGradeIndex, int conductGradeIndex); // 创建奖学金公式

    QString convertToExcelStyle(int row, int col);


private:
    QString         tableName;   // 表格名称
    QString         header;      // 表头
    QList<Course>   courseList;  // 课程列表
    QList<Student>  studentList; // 学生列表
    int             sportsIndex; // 体育课的坐标
    GradeLevel      gradeLevel;  // 年级：大一、大二、大三、大四
};

#endif // MYTABLE_H
